home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / clean / sun3.lha / Sun3 / deltaI.abc < prev    next >
Text File  |  1992-08-07  |  15KB  |  1,159 lines

  1. .comp 800 111111011
  2. .code     518      24     115
  3. .start _nostart_
  4. .endinfo
  5. .implab _cycle_in_spine
  6. .implab _reserve
  7. .implab _type_error
  8. .impdesc _Defer
  9. .implab _defer_code
  10. .implab _hnf
  11. .impdesc _Cons
  12. .impdesc _Tuple
  13. .impdesc _Select
  14. .impdesc _Nil
  15. .implab _driver
  16. .implab e_system_nAP
  17. .implab e_system_sAP
  18. .impdesc e_system_AP
  19. .desc m_deltaI _hnf _hnf 0 "deltaI"
  20.  
  21. .export e_deltaI_+
  22. .export e_deltaI_s+
  23. .export e_deltaI_n+
  24. .desc e_deltaI_+ e_deltaI_n+ e_deltaI_l+ 2 "+"
  25. .o 2 0
  26. e_deltaI_l+:
  27.     repl_args 1 1
  28. .d 2 0
  29.     jsr ea+
  30. .o 0 1 i
  31.     create
  32.     fillI_b 0 0
  33.     pop_b 1
  34. .d 1 0
  35.     rtn
  36. .n 2 e_deltaI_+
  37. .o 1 0
  38. e_deltaI_n+:
  39.     push_node _reserve 2
  40. .d 2 0
  41.     jsr ea+
  42. .o 0 1 i
  43.     getWL 0
  44.     fillI_b 0 0
  45.     release
  46.     pop_b 1
  47. .d 1 0
  48.     rtn
  49. .o 2 0
  50. ea+:
  51.             ||    INT
  52.     push_a 1
  53.     jsr_eval
  54.     pop_a 1
  55.             ||    INT
  56.     jsr_eval
  57.             ||    INT
  58.     pushI_a 1
  59.             ||    INT
  60.     pushI_a 0
  61.     pop_a 2
  62. .o 0 2 i i
  63. e_deltaI_s+:
  64. .o 0 2 i i
  65. s+.1:
  66.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  67.             ||    Building the contractum, Stacksizes A: 0 B: 2
  68. .inline +
  69.     addI
  70. .end
  71. .d 0 1 i
  72.     rtn
  73. .export e_deltaI_-
  74. .export e_deltaI_s-
  75. .export e_deltaI_n-
  76. .desc e_deltaI_- e_deltaI_n- e_deltaI_l- 2 "-"
  77. .o 2 0
  78. e_deltaI_l-:
  79.     repl_args 1 1
  80. .d 2 0
  81.     jsr ea-
  82. .o 0 1 i
  83.     create
  84.     fillI_b 0 0
  85.     pop_b 1
  86. .d 1 0
  87.     rtn
  88. .n 2 e_deltaI_-
  89. .o 1 0
  90. e_deltaI_n-:
  91.     push_node _reserve 2
  92. .d 2 0
  93.     jsr ea-
  94. .o 0 1 i
  95.     getWL 0
  96.     fillI_b 0 0
  97.     release
  98.     pop_b 1
  99. .d 1 0
  100.     rtn
  101. .o 2 0
  102. ea-:
  103.             ||    INT
  104.     push_a 1
  105.     jsr_eval
  106.     pop_a 1
  107.             ||    INT
  108.     jsr_eval
  109.             ||    INT
  110.     pushI_a 1
  111.             ||    INT
  112.     pushI_a 0
  113.     pop_a 2
  114. .o 0 2 i i
  115. e_deltaI_s-:
  116. .o 0 2 i i
  117. s-.1:
  118.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  119.             ||    Building the contractum, Stacksizes A: 0 B: 2
  120. .inline -
  121.     subI
  122. .end
  123. .d 0 1 i
  124.     rtn
  125. .export e_deltaI_*
  126. .export e_deltaI_s*
  127. .export e_deltaI_n*
  128. .desc e_deltaI_* e_deltaI_n* e_deltaI_l* 2 "*"
  129. .o 2 0
  130. e_deltaI_l*:
  131.     repl_args 1 1
  132. .d 2 0
  133.     jsr ea*
  134. .o 0 1 i
  135.     create
  136.     fillI_b 0 0
  137.     pop_b 1
  138. .d 1 0
  139.     rtn
  140. .n 2 e_deltaI_*
  141. .o 1 0
  142. e_deltaI_n*:
  143.     push_node _reserve 2
  144. .d 2 0
  145.     jsr ea*
  146. .o 0 1 i
  147.     getWL 0
  148.     fillI_b 0 0
  149.     release
  150.     pop_b 1
  151. .d 1 0
  152.     rtn
  153. .o 2 0
  154. ea*:
  155.             ||    INT
  156.     push_a 1
  157.     jsr_eval
  158.     pop_a 1
  159.             ||    INT
  160.     jsr_eval
  161.             ||    INT
  162.     pushI_a 1
  163.             ||    INT
  164.     pushI_a 0
  165.     pop_a 2
  166. .o 0 2 i i
  167. e_deltaI_s*:
  168. .o 0 2 i i
  169. s*.1:
  170.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  171.             ||    Building the contractum, Stacksizes A: 0 B: 2
  172. .inline *
  173.     mulI
  174. .end
  175. .d 0 1 i
  176.     rtn
  177. .export e_deltaI_/
  178. .export e_deltaI_s/
  179. .export e_deltaI_n/
  180. .desc e_deltaI_/ e_deltaI_n/ e_deltaI_l/ 2 "/"
  181. .o 2 0
  182. e_deltaI_l/:
  183.     repl_args 1 1
  184. .d 2 0
  185.     jsr ea/
  186. .o 0 1 i
  187.     create
  188.     fillI_b 0 0
  189.     pop_b 1
  190. .d 1 0
  191.     rtn
  192. .n 2 e_deltaI_/
  193. .o 1 0
  194. e_deltaI_n/:
  195.     push_node _reserve 2
  196. .d 2 0
  197.     jsr ea/
  198. .o 0 1 i
  199.     getWL 0
  200.     fillI_b 0 0
  201.     release
  202.     pop_b 1
  203. .d 1 0
  204.     rtn
  205. .o 2 0
  206. ea/:
  207.             ||    INT
  208.     push_a 1
  209.     jsr_eval
  210.     pop_a 1
  211.             ||    INT
  212.     jsr_eval
  213.             ||    INT
  214.     pushI_a 1
  215.             ||    INT
  216.     pushI_a 0
  217.     pop_a 2
  218. .o 0 2 i i
  219. e_deltaI_s/:
  220. .o 0 2 i i
  221. s/.1:
  222.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  223.             ||    Building the contractum, Stacksizes A: 0 B: 2
  224. .inline /
  225.     divI
  226. .end
  227. .d 0 1 i
  228.     rtn
  229. .export e_deltaI_%
  230. .export e_deltaI_s%
  231. .export e_deltaI_n%
  232. .desc e_deltaI_% e_deltaI_n% e_deltaI_l% 2 "%"
  233. .o 2 0
  234. e_deltaI_l%:
  235.     repl_args 1 1
  236. .d 2 0
  237.     jsr ea%
  238. .o 0 1 i
  239.     create
  240.     fillI_b 0 0
  241.     pop_b 1
  242. .d 1 0
  243.     rtn
  244. .n 2 e_deltaI_%
  245. .o 1 0
  246. e_deltaI_n%:
  247.     push_node _reserve 2
  248. .d 2 0
  249.     jsr ea%
  250. .o 0 1 i
  251.     getWL 0
  252.     fillI_b 0 0
  253.     release
  254.     pop_b 1
  255. .d 1 0
  256.     rtn
  257. .o 2 0
  258. ea%:
  259.             ||    INT
  260.     push_a 1
  261.     jsr_eval
  262.     pop_a 1
  263.             ||    INT
  264.     jsr_eval
  265.             ||    INT
  266.     pushI_a 1
  267.             ||    INT
  268.     pushI_a 0
  269.     pop_a 2
  270. .o 0 2 i i
  271. e_deltaI_s%:
  272. .o 0 2 i i
  273. s%.1:
  274.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  275.             ||    Building the contractum, Stacksizes A: 0 B: 2
  276. .inline %
  277.     modI
  278. .end
  279. .d 0 1 i
  280.     rtn
  281. .export e_deltaI_++
  282. .export e_deltaI_s++
  283. .export e_deltaI_n++
  284. .desc e_deltaI_++ e_deltaI_n++ e_deltaI_l++ 1 "++"
  285. .o 2 0
  286. e_deltaI_l++:
  287.     pop_a 1
  288. .d 1 0
  289.     jsr ea++
  290. .o 0 1 i
  291.     create
  292.     fillI_b 0 0
  293.     pop_b 1
  294. .d 1 0
  295.     rtn
  296. .n 1 e_deltaI_++
  297. .o 1 0
  298. e_deltaI_n++:
  299.     push_node _reserve 1
  300. .d 1 0
  301.     jsr ea++
  302. .o 0 1 i
  303.     getWL 0
  304.     fillI_b 0 0
  305.     release
  306.     pop_b 1
  307. .d 1 0
  308.     rtn
  309. .o 1 0
  310. ea++:
  311.             ||    INT
  312.     jsr_eval
  313.             ||    INT
  314.     pushI_a 0
  315.     pop_a 1
  316. .o 0 1 i
  317. e_deltaI_s++:
  318. .o 0 1 i
  319. s++.1:
  320.             ||    Match code for alternative 1, stacksizes A: 0 B: 1
  321.             ||    Building the contractum, Stacksizes A: 0 B: 1
  322. .inline ++
  323.     incI
  324. .end
  325. .d 0 1 i
  326.     rtn
  327. .export e_deltaI_--
  328. .export e_deltaI_s--
  329. .export e_deltaI_n--
  330. .desc e_deltaI_-- e_deltaI_n-- e_deltaI_l-- 1 "--"
  331. .o 2 0
  332. e_deltaI_l--:
  333.     pop_a 1
  334. .d 1 0
  335.     jsr ea--
  336. .o 0 1 i
  337.     create
  338.     fillI_b 0 0
  339.     pop_b 1
  340. .d 1 0
  341.     rtn
  342. .n 1 e_deltaI_--
  343. .o 1 0
  344. e_deltaI_n--:
  345.     push_node _reserve 1
  346. .d 1 0
  347.     jsr ea--
  348. .o 0 1 i
  349.     getWL 0
  350.     fillI_b 0 0
  351.     release
  352.     pop_b 1
  353. .d 1 0
  354.     rtn
  355. .o 1 0
  356. ea--:
  357.             ||    INT
  358.     jsr_eval
  359.             ||    INT
  360.     pushI_a 0
  361.     pop_a 1
  362. .o 0 1 i
  363. e_deltaI_s--:
  364. .o 0 1 i
  365. s--.1:
  366.             ||    Match code for alternative 1, stacksizes A: 0 B: 1
  367.             ||    Building the contractum, Stacksizes A: 0 B: 1
  368. .inline --
  369.     decI
  370. .end
  371. .d 0 1 i
  372.     rtn
  373. .export e_deltaI_=
  374. .export e_deltaI_s=
  375. .export e_deltaI_n=
  376. .desc e_deltaI_= e_deltaI_n= e_deltaI_l= 2 "="
  377. .o 2 0
  378. e_deltaI_l=:
  379.     repl_args 1 1
  380. .d 2 0
  381.     jsr ea=
  382. .o 0 1 b
  383.     create
  384.     fillB_b 0 0
  385.     pop_b 1
  386. .d 1 0
  387.     rtn
  388. .n 2 e_deltaI_=
  389. .o 1 0
  390. e_deltaI_n=:
  391.     push_node _reserve 2
  392. .d 2 0
  393.     jsr ea=
  394. .o 0 1 b
  395.     getWL 0
  396.     fillB_b 0 0
  397.     release
  398.     pop_b 1
  399. .d 1 0
  400.     rtn
  401. .o 2 0
  402. ea=:
  403.             ||    INT
  404.     push_a 1
  405.     jsr_eval
  406.     pop_a 1
  407.             ||    INT
  408.     jsr_eval
  409.             ||    INT
  410.     pushI_a 1
  411.             ||    INT
  412.     pushI_a 0
  413.     pop_a 2
  414. .o 0 2 i i
  415. e_deltaI_s=:
  416. .o 0 2 i i
  417. s=.1:
  418.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  419.             ||    Building the contractum, Stacksizes A: 0 B: 2
  420. .inline =
  421.     eqI
  422. .end
  423. .d 0 1 b
  424.     rtn
  425. .export e_deltaI_<>
  426. .export e_deltaI_s<>
  427. .export e_deltaI_n<>
  428. .desc e_deltaI_<> e_deltaI_n<> e_deltaI_l<> 2 "<>"
  429. .o 2 0
  430. e_deltaI_l<>:
  431.     repl_args 1 1
  432. .d 2 0
  433.     jsr ea<>
  434. .o 0 1 b
  435.     create
  436.     fillB_b 0 0
  437.     pop_b 1
  438. .d 1 0
  439.     rtn
  440. .n 2 e_deltaI_<>
  441. .o 1 0
  442. e_deltaI_n<>:
  443.     push_node _reserve 2
  444. .d 2 0
  445.     jsr ea<>
  446. .o 0 1 b
  447.     getWL 0
  448.     fillB_b 0 0
  449.     release
  450.     pop_b 1
  451. .d 1 0
  452.     rtn
  453. .o 2 0
  454. ea<>:
  455.             ||    INT
  456.     push_a 1
  457.     jsr_eval
  458.     pop_a 1
  459.             ||    INT
  460.     jsr_eval
  461.             ||    INT
  462.     pushI_a 1
  463.             ||    INT
  464.     pushI_a 0
  465.     pop_a 2
  466. .o 0 2 i i
  467. e_deltaI_s<>:
  468. .o 0 2 i i
  469. s<>.1:
  470.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  471.             ||    Building the contractum, Stacksizes A: 0 B: 2
  472. .inline <>
  473.     eqI
  474.     notB
  475. .end
  476. .d 0 1 b
  477.     rtn
  478. .export e_deltaI_<
  479. .export e_deltaI_s<
  480. .export e_deltaI_n<
  481. .desc e_deltaI_< e_deltaI_n< e_deltaI_l< 2 "<"
  482. .o 2 0
  483. e_deltaI_l<:
  484.     repl_args 1 1
  485. .d 2 0
  486.     jsr ea<
  487. .o 0 1 b
  488.     create
  489.     fillB_b 0 0
  490.     pop_b 1
  491. .d 1 0
  492.     rtn
  493. .n 2 e_deltaI_<
  494. .o 1 0
  495. e_deltaI_n<:
  496.     push_node _reserve 2
  497. .d 2 0
  498.     jsr ea<
  499. .o 0 1 b
  500.     getWL 0
  501.     fillB_b 0 0
  502.     release
  503.     pop_b 1
  504. .d 1 0
  505.     rtn
  506. .o 2 0
  507. ea<:
  508.             ||    INT
  509.     push_a 1
  510.     jsr_eval
  511.     pop_a 1
  512.             ||    INT
  513.     jsr_eval
  514.             ||    INT
  515.     pushI_a 1
  516.             ||    INT
  517.     pushI_a 0
  518.     pop_a 2
  519. .o 0 2 i i
  520. e_deltaI_s<:
  521. .o 0 2 i i
  522. s<.1:
  523.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  524.             ||    Building the contractum, Stacksizes A: 0 B: 2
  525. .inline <
  526.     ltI
  527. .end
  528. .d 0 1 b
  529.     rtn
  530. .export e_deltaI_>
  531. .export e_deltaI_s>
  532. .export e_deltaI_n>
  533. .desc e_deltaI_> e_deltaI_n> e_deltaI_l> 2 ">"
  534. .o 2 0
  535. e_deltaI_l>:
  536.     repl_args 1 1
  537. .d 2 0
  538.     jsr ea>
  539. .o 0 1 b
  540.     create
  541.     fillB_b 0 0
  542.     pop_b 1
  543. .d 1 0
  544.     rtn
  545. .n 2 e_deltaI_>
  546. .o 1 0
  547. e_deltaI_n>:
  548.     push_node _reserve 2
  549. .d 2 0
  550.     jsr ea>
  551. .o 0 1 b
  552.     getWL 0
  553.     fillB_b 0 0
  554.     release
  555.     pop_b 1
  556. .d 1 0
  557.     rtn
  558. .o 2 0
  559. ea>:
  560.             ||    INT
  561.     push_a 1
  562.     jsr_eval
  563.     pop_a 1
  564.             ||    INT
  565.     jsr_eval
  566.             ||    INT
  567.     pushI_a 1
  568.             ||    INT
  569.     pushI_a 0
  570.     pop_a 2
  571. .o 0 2 i i
  572. e_deltaI_s>:
  573. .o 0 2 i i
  574. s>.1:
  575.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  576.             ||    Building the contractum, Stacksizes A: 0 B: 2
  577. .inline >
  578.     gtI
  579. .end
  580. .d 0 1 b
  581.     rtn
  582. .export e_deltaI_<=
  583. .export e_deltaI_s<=
  584. .export e_deltaI_n<=
  585. .desc e_deltaI_<= e_deltaI_n<= e_deltaI_l<= 2 "<="
  586. .o 2 0
  587. e_deltaI_l<=:
  588.     repl_args 1 1
  589. .d 2 0
  590.     jsr ea<=
  591. .o 0 1 b
  592.     create
  593.     fillB_b 0 0
  594.     pop_b 1
  595. .d 1 0
  596.     rtn
  597. .n 2 e_deltaI_<=
  598. .o 1 0
  599. e_deltaI_n<=:
  600.     push_node _reserve 2
  601. .d 2 0
  602.     jsr ea<=
  603. .o 0 1 b
  604.     getWL 0
  605.     fillB_b 0 0
  606.     release
  607.     pop_b 1
  608. .d 1 0
  609.     rtn
  610. .o 2 0
  611. ea<=:
  612.             ||    INT
  613.     push_a 1
  614.     jsr_eval
  615.     pop_a 1
  616.             ||    INT
  617.     jsr_eval
  618.             ||    INT
  619.     pushI_a 1
  620.             ||    INT
  621.     pushI_a 0
  622.     pop_a 2
  623. .o 0 2 i i
  624. e_deltaI_s<=:
  625. .o 0 2 i i
  626. s<=.1:
  627.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  628.             ||    Building the contractum, Stacksizes A: 0 B: 2
  629. .inline <=
  630.     gtI
  631.     notB
  632. .end
  633. .d 0 1 b
  634.     rtn
  635. .export e_deltaI_>=
  636. .export e_deltaI_s>=
  637. .export e_deltaI_n>=
  638. .desc e_deltaI_>= e_deltaI_n>= e_deltaI_l>= 2 ">="
  639. .o 2 0
  640. e_deltaI_l>=:
  641.     repl_args 1 1
  642. .d 2 0
  643.     jsr ea>=
  644. .o 0 1 b
  645.     create
  646.     fillB_b 0 0
  647.     pop_b 1
  648. .d 1 0
  649.     rtn
  650. .n 2 e_deltaI_>=
  651. .o 1 0
  652. e_deltaI_n>=:
  653.     push_node _reserve 2
  654. .d 2 0
  655.     jsr ea>=
  656. .o 0 1 b
  657.     getWL 0
  658.     fillB_b 0 0
  659.     release
  660.     pop_b 1
  661. .d 1 0
  662.     rtn
  663. .o 2 0
  664. ea>=:
  665.             ||    INT
  666.     push_a 1
  667.     jsr_eval
  668.     pop_a 1
  669.             ||    INT
  670.     jsr_eval
  671.             ||    INT
  672.     pushI_a 1
  673.             ||    INT
  674.     pushI_a 0
  675.     pop_a 2
  676. .o 0 2 i i
  677. e_deltaI_s>=:
  678. .o 0 2 i i
  679. s>=.1:
  680.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  681.             ||    Building the contractum, Stacksizes A: 0 B: 2
  682. .inline >=
  683.     ltI
  684.     notB
  685. .end
  686. .d 0 1 b
  687.     rtn
  688. .export e_deltaI_AND%
  689. .export e_deltaI_sAND%
  690. .export e_deltaI_nAND%
  691. .desc e_deltaI_AND% e_deltaI_nAND% e_deltaI_lAND% 2 "AND%"
  692. .o 2 0
  693. e_deltaI_lAND%:
  694.     repl_args 1 1
  695. .d 2 0
  696.     jsr eaAND%
  697. .o 0 1 i
  698.     create
  699.     fillI_b 0 0
  700.     pop_b 1
  701. .d 1 0
  702.     rtn
  703. .n 2 e_deltaI_AND%
  704. .o 1 0
  705. e_deltaI_nAND%:
  706.     push_node _reserve 2
  707. .d 2 0
  708.     jsr eaAND%
  709. .o 0 1 i
  710.     getWL 0
  711.     fillI_b 0 0
  712.     release
  713.     pop_b 1
  714. .d 1 0
  715.     rtn
  716. .o 2 0
  717. eaAND%:
  718.             ||    INT
  719.     push_a 1
  720.     jsr_eval
  721.     pop_a 1
  722.             ||    INT
  723.     jsr_eval
  724.             ||    INT
  725.     pushI_a 1
  726.             ||    INT
  727.     pushI_a 0
  728.     pop_a 2
  729. .o 0 2 i i
  730. e_deltaI_sAND%:
  731. .o 0 2 i i
  732. sAND%.1:
  733.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  734.             ||    Building the contractum, Stacksizes A: 0 B: 2
  735. .inline AND%
  736.     and%
  737. .end
  738. .d 0 1 i
  739.     rtn
  740. .export e_deltaI_OR%
  741. .export e_deltaI_sOR%
  742. .export e_deltaI_nOR%
  743. .desc e_deltaI_OR% e_deltaI_nOR% e_deltaI_lOR% 2 "OR%"
  744. .o 2 0
  745. e_deltaI_lOR%:
  746.     repl_args 1 1
  747. .d 2 0
  748.     jsr eaOR%
  749. .o 0 1 i
  750.     create
  751.     fillI_b 0 0
  752.     pop_b 1
  753. .d 1 0
  754.     rtn
  755. .n 2 e_deltaI_OR%
  756. .o 1 0
  757. e_deltaI_nOR%:
  758.     push_node _reserve 2
  759. .d 2 0
  760.     jsr eaOR%
  761. .o 0 1 i
  762.     getWL 0
  763.     fillI_b 0 0
  764.     release
  765.     pop_b 1
  766. .d 1 0
  767.     rtn
  768. .o 2 0
  769. eaOR%:
  770.             ||    INT
  771.     push_a 1
  772.     jsr_eval
  773.     pop_a 1
  774.             ||    INT
  775.     jsr_eval
  776.             ||    INT
  777.     pushI_a 1
  778.             ||    INT
  779.     pushI_a 0
  780.     pop_a 2
  781. .o 0 2 i i
  782. e_deltaI_sOR%:
  783. .o 0 2 i i
  784. sOR%.1:
  785.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  786.             ||    Building the contractum, Stacksizes A: 0 B: 2
  787. .inline OR%
  788.     or%
  789. .end
  790. .d 0 1 i
  791.     rtn
  792. .export e_deltaI_XOR%
  793. .export e_deltaI_sXOR%
  794. .export e_deltaI_nXOR%
  795. .desc e_deltaI_XOR% e_deltaI_nXOR% e_deltaI_lXOR% 2 "XOR%"
  796. .o 2 0
  797. e_deltaI_lXOR%:
  798.     repl_args 1 1
  799. .d 2 0
  800.     jsr eaXOR%
  801. .o 0 1 i
  802.     create
  803.     fillI_b 0 0
  804.     pop_b 1
  805. .d 1 0
  806.     rtn
  807. .n 2 e_deltaI_XOR%
  808. .o 1 0
  809. e_deltaI_nXOR%:
  810.     push_node _reserve 2
  811. .d 2 0
  812.     jsr eaXOR%
  813. .o 0 1 i
  814.     getWL 0
  815.     fillI_b 0 0
  816.     release
  817.     pop_b 1
  818. .d 1 0
  819.     rtn
  820. .o 2 0
  821. eaXOR%:
  822.             ||    INT
  823.     push_a 1
  824.     jsr_eval
  825.     pop_a 1
  826.             ||    INT
  827.     jsr_eval
  828.             ||    INT
  829.     pushI_a 1
  830.             ||    INT
  831.     pushI_a 0
  832.     pop_a 2
  833. .o 0 2 i i
  834. e_deltaI_sXOR%:
  835. .o 0 2 i i
  836. sXOR%.1:
  837.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  838.             ||    Building the contractum, Stacksizes A: 0 B: 2
  839. .inline XOR%
  840.     xor%
  841. .end
  842. .d 0 1 i
  843.     rtn
  844. .export e_deltaI_SHIFTL%
  845. .export e_deltaI_sSHIFTL%
  846. .export e_deltaI_nSHIFTL%
  847. .desc e_deltaI_SHIFTL% e_deltaI_nSHIFTL% e_deltaI_lSHIFTL% 2 "SHIFTL%"
  848. .o 2 0
  849. e_deltaI_lSHIFTL%:
  850.     repl_args 1 1
  851. .d 2 0
  852.     jsr eaSHIFTL%
  853. .o 0 1 i
  854.     create
  855.     fillI_b 0 0
  856.     pop_b 1
  857. .d 1 0
  858.     rtn
  859. .n 2 e_deltaI_SHIFTL%
  860. .o 1 0
  861. e_deltaI_nSHIFTL%:
  862.     push_node _reserve 2
  863. .d 2 0
  864.     jsr eaSHIFTL%
  865. .o 0 1 i
  866.     getWL 0
  867.     fillI_b 0 0
  868.     release
  869.     pop_b 1
  870. .d 1 0
  871.     rtn
  872. .o 2 0
  873. eaSHIFTL%:
  874.             ||    INT
  875.     push_a 1
  876.     jsr_eval
  877.     pop_a 1
  878.             ||    INT
  879.     jsr_eval
  880.             ||    INT
  881.     pushI_a 1
  882.             ||    INT
  883.     pushI_a 0
  884.     pop_a 2
  885. .o 0 2 i i
  886. e_deltaI_sSHIFTL%:
  887. .o 0 2 i i
  888. sSHIFTL%.1:
  889.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  890.             ||    Building the contractum, Stacksizes A: 0 B: 2
  891. .inline SHIFTL%
  892.     shiftl%
  893. .end
  894. .d 0 1 i
  895.     rtn
  896. .export e_deltaI_SHIFTR%
  897. .export e_deltaI_sSHIFTR%
  898. .export e_deltaI_nSHIFTR%
  899. .desc e_deltaI_SHIFTR% e_deltaI_nSHIFTR% e_deltaI_lSHIFTR% 2 "SHIFTR%"
  900. .o 2 0
  901. e_deltaI_lSHIFTR%:
  902.     repl_args 1 1
  903. .d 2 0
  904.     jsr eaSHIFTR%
  905. .o 0 1 i
  906.     create
  907.     fillI_b 0 0
  908.     pop_b 1
  909. .d 1 0
  910.     rtn
  911. .n 2 e_deltaI_SHIFTR%
  912. .o 1 0
  913. e_deltaI_nSHIFTR%:
  914.     push_node _reserve 2
  915. .d 2 0
  916.     jsr eaSHIFTR%
  917. .o 0 1 i
  918.     getWL 0
  919.     fillI_b 0 0
  920.     release
  921.     pop_b 1
  922. .d 1 0
  923.     rtn
  924. .o 2 0
  925. eaSHIFTR%:
  926.             ||    INT
  927.     push_a 1
  928.     jsr_eval
  929.     pop_a 1
  930.             ||    INT
  931.     jsr_eval
  932.             ||    INT
  933.     pushI_a 1
  934.             ||    INT
  935.     pushI_a 0
  936.     pop_a 2
  937. .o 0 2 i i
  938. e_deltaI_sSHIFTR%:
  939. .o 0 2 i i
  940. sSHIFTR%.1:
  941.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  942.             ||    Building the contractum, Stacksizes A: 0 B: 2
  943. .inline SHIFTR%
  944.     shiftr%
  945. .end
  946. .d 0 1 i
  947.     rtn
  948. .export e_deltaI_NOT%
  949. .export e_deltaI_sNOT%
  950. .export e_deltaI_nNOT%
  951. .desc e_deltaI_NOT% e_deltaI_nNOT% e_deltaI_lNOT% 1 "NOT%"
  952. .o 2 0
  953. e_deltaI_lNOT%:
  954.     pop_a 1
  955. .d 1 0
  956.     jsr eaNOT%
  957. .o 0 1 i
  958.     create
  959.     fillI_b 0 0
  960.     pop_b 1
  961. .d 1 0
  962.     rtn
  963. .n 1 e_deltaI_NOT%
  964. .o 1 0
  965. e_deltaI_nNOT%:
  966.     push_node _reserve 1
  967. .d 1 0
  968.     jsr eaNOT%
  969. .o 0 1 i
  970.     getWL 0
  971.     fillI_b 0 0
  972.     release
  973.     pop_b 1
  974. .d 1 0
  975.     rtn
  976. .o 1 0
  977. eaNOT%:
  978.             ||    INT
  979.     jsr_eval
  980.             ||    INT
  981.     pushI_a 0
  982.     pop_a 1
  983. .o 0 1 i
  984. e_deltaI_sNOT%:
  985. .o 0 1 i
  986. sNOT%.1:
  987.             ||    Match code for alternative 1, stacksizes A: 0 B: 1
  988.             ||    Building the contractum, Stacksizes A: 0 B: 1
  989. .inline NOT%
  990.     not%
  991. .end
  992. .d 0 1 i
  993.     rtn
  994. .export e_deltaI_ITOC
  995. .export e_deltaI_sITOC
  996. .export e_deltaI_nITOC
  997. .desc e_deltaI_ITOC e_deltaI_nITOC e_deltaI_lITOC 1 "ITOC"
  998. .o 2 0
  999. e_deltaI_lITOC:
  1000.     pop_a 1
  1001. .d 1 0
  1002.     jsr eaITOC
  1003. .o 0 1 c
  1004.     create
  1005.     fillC_b 0 0
  1006.     pop_b 1
  1007. .d 1 0
  1008.     rtn
  1009. .n 1 e_deltaI_ITOC
  1010. .o 1 0
  1011. e_deltaI_nITOC:
  1012.     push_node _reserve 1
  1013. .d 1 0
  1014.     jsr eaITOC
  1015. .o 0 1 c
  1016.     getWL 0
  1017.     fillC_b 0 0
  1018.     release
  1019.     pop_b 1
  1020. .d 1 0
  1021.     rtn
  1022. .o 1 0
  1023. eaITOC:
  1024.             ||    INT
  1025.     jsr_eval
  1026.             ||    INT
  1027.     pushI_a 0
  1028.     pop_a 1
  1029. .o 0 1 i
  1030. e_deltaI_sITOC:
  1031. .o 0 1 i
  1032. sITOC.1:
  1033.             ||    Match code for alternative 1, stacksizes A: 0 B: 1
  1034.             ||    Building the contractum, Stacksizes A: 0 B: 1
  1035. .inline ITOC
  1036.     ItoC
  1037. .end
  1038. .d 0 1 c
  1039.     rtn
  1040. .export e_deltaI_ITOR
  1041. .export e_deltaI_sITOR
  1042. .export e_deltaI_nITOR
  1043. .desc e_deltaI_ITOR e_deltaI_nITOR e_deltaI_lITOR 1 "ITOR"
  1044. .o 2 0
  1045. e_deltaI_lITOR:
  1046.     pop_a 1
  1047. .d 1 0
  1048.     jsr eaITOR
  1049. .o 0 2 r
  1050.     create
  1051.     fillR_b 0 0
  1052.     pop_b 2
  1053. .d 1 0
  1054.     rtn
  1055. .n 1 e_deltaI_ITOR
  1056. .o 1 0
  1057. e_deltaI_nITOR:
  1058.     push_node _reserve 1
  1059. .d 1 0
  1060.     jsr eaITOR
  1061. .o 0 2 r
  1062.     getWL 0
  1063.     fillR_b 0 0
  1064.     release
  1065.     pop_b 2
  1066. .d 1 0
  1067.     rtn
  1068. .o 1 0
  1069. eaITOR:
  1070.             ||    INT
  1071.     jsr_eval
  1072.             ||    INT
  1073.     pushI_a 0
  1074.     pop_a 1
  1075. .o 0 1 i
  1076. e_deltaI_sITOR:
  1077. .o 0 1 i
  1078. sITOR.1:
  1079.             ||    Match code for alternative 1, stacksizes A: 0 B: 1
  1080.             ||    Building the contractum, Stacksizes A: 0 B: 1
  1081. .inline ITOR
  1082.     ItoR
  1083. .end
  1084. .d 0 2 r
  1085.     rtn
  1086. .export e_deltaI_ITOS
  1087. .export e_deltaI_sITOS
  1088. .export e_deltaI_nITOS
  1089. .desc e_deltaI_ITOS e_deltaI_nITOS e_deltaI_lITOS 1 "ITOS"
  1090. .o 2 0
  1091. e_deltaI_lITOS:
  1092.     update_a 1 0
  1093.     create
  1094.     update_a 0 2
  1095.     pop_a 1
  1096. .d 2 0
  1097.     jmp eaITOS
  1098. .n 1 e_deltaI_ITOS
  1099. .o 1 0
  1100. e_deltaI_nITOS:
  1101.     push_node _reserve 1
  1102. .o 2 0
  1103. eaITOS:
  1104.             ||    INT
  1105.     jsr_eval
  1106.             ||    INT
  1107.     pushI_a 0
  1108.     pop_a 1
  1109. .o 1 1 i
  1110. e_deltaI_sITOS:
  1111. .o 1 1 i
  1112. sITOS.1:
  1113.             ||    Match code for alternative 1, stacksizes A: 0 B: 1
  1114.             ||    Building the contractum, Stacksizes A: 0 B: 1
  1115. .inline ITOS
  1116.     create
  1117.     fillI_b 0 0
  1118.     pop_b 1
  1119.     getWL 1
  1120.     fillS_symbol 0 1
  1121.     release
  1122.     pop_a 1
  1123. .end
  1124. .d 1 0
  1125.     rtn
  1126. .export e_deltaI_RANDOM
  1127. .export e_deltaI_sRANDOM
  1128. .export e_deltaI_nRANDOM
  1129. .desc e_deltaI_RANDOM e_deltaI_nRANDOM e_deltaI_lRANDOM 0 "RANDOM"
  1130. .o 1 0
  1131. e_deltaI_lRANDOM:
  1132.     halt
  1133. .n 0 e_deltaI_RANDOM
  1134. .o 1 0
  1135. e_deltaI_nRANDOM:
  1136.     push_node _reserve 0
  1137. .d 0 0
  1138.     jsr eaRANDOM
  1139. .o 0 1 i
  1140.     getWL 0
  1141.     fillI_b 0 0
  1142.     release
  1143.     pop_b 1
  1144. .d 1 0
  1145.     rtn
  1146. .o 0 0
  1147. e_deltaI_sRANDOM:
  1148. .o 0 0
  1149. eaRANDOM:
  1150. .o 0 0
  1151. sRANDOM.1:
  1152.             ||    Match code for alternative 1, stacksizes A: 0 B: 0
  1153.             ||    Building the contractum, Stacksizes A: 0 B: 0
  1154. .inline RANDOM
  1155.     randomI
  1156. .end
  1157. .d 0 1 i
  1158.     rtn
  1159.